﻿using System;

namespace Informant.SmsMessaging
{
	public class SendSmsProgressEventArgs : EventArgs
	{
		static SendSmsProgressEventArgs _empty;

		/// <summary>
		/// Gets the empty.
		/// </summary>
		/// <value>The empty.</value>
		public static new SendSmsProgressEventArgs Empty
		{
			get
			{
				if (_empty == null)
				{
					_empty = new SendSmsProgressEventArgs();
				}
				return _empty;
			}
		}
		/// <summary>
		/// Gets or sets the SMS sent count.
		/// </summary>
		/// <value>The SMS sent.</value>
		public Int32 Sent { get; private set; }
		/// <summary>
		/// Gets or sets the SMS failed count.
		/// </summary>
		/// <value>The SMS failed.</value>
		public Int32 Failed { get; private set; }
		/// <summary>
		/// Gets or sets the SMS total count.
		/// </summary>
		/// <value>The SMS total.</value>
		public Int32 Total { get; private set; }

		/// <summary>
		/// Initializes a new instance of the <see cref="SendSmsProgressEventArgs"/> class.
		/// </summary>
		private SendSmsProgressEventArgs() { }
		/// <summary>
		/// Initializes a new instance of the <see cref="SendSmsProgressEventArgs"/> class.
		/// </summary>
		/// <param name="sent">The sent.</param>
		/// <param name="failed">The failed.</param>
		/// <param name="total">The total.</param>
		public SendSmsProgressEventArgs(Int32 sent, Int32 failed, Int32 total)
		{
			Sent = sent;
			Failed = failed;
			Total = total;
		}
	}
}
